package com.seafood.dto;

import lombok.Data;

import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;

/**
 * 用户查询DTO
 */
@Data
public class UserQueryDTO {
    
    @NotNull(message = "页码不能为空")
    @Min(value = 1, message = "页码必须大于0")
    private Integer page = 1;
    
    @NotNull(message = "每页大小不能为空")
    @Min(value = 1, message = "每页大小必须大于0")
    private Integer size = 10;
    
    /**
     * 用户类型：CUSTOMER、SUPPLIER、ADMIN
     */
    private String userType;
    
    /**
     * 用户状态：ACTIVE、INACTIVE、PENDING
     */
    private String status;
    
    /**
     * 用户名搜索
     */
    private String username;
    
    /**
     * 邮箱搜索
     */
    private String email;
    
    /**
     * 关键词搜索(用户名/邮箱/手机号/真实姓名)
     */
    private String keyword;
    
    /**
     * 开始时间
     */
    private String startDate;
    
    /**
     * 结束时间
     */
    private String endDate;
    
    /**
     * 排序字段
     */
    private String sortBy = "createdAt";
    
    /**
     * 排序方向：ASC、DESC
     */
    private String sortDirection = "DESC";
}